The present invention relates to a system for storing, managing and tracking changes to design information typically created in multi-user, multi-discipline, engineering projects. Specifically, the present invention provides a management tool for tracking and managing multiple simultaneous changes to a project data set in a cohesive, secure, identifiable, and reversible way. Importantly, the invention provides interfaces for importing data from, and for making changes to, the project data set with file-oriented tools such as CAD programs.
The goal of concurrent engineering is to enable multiple users to work on the same design concurrently, each contributing his own expertise in a way that builds on and complements the work of others. Engineering projects present a particularly challenging Computer Information Management problem since they are characterized by workflows that involve multiple participants simultaneously making changes to related information. Current generation software products, particularly those in the category known as xe2x80x9cCADxe2x80x9d (Computer Aided Drafting), are weak at supporting these workflows, since they were generally designed to replicate and automate the one-at-a-time nature of drafting boards. In pre-CAD workflows, a paper drawing could only be modified by a single draftsperson at a time. Thus, it seemed natural that the computerized equivalents would take the same approach. However, that approach is now seen as inadequate. First, the manual process on which the software design is based has limitations and problems. For example, coordination between draftspeople required verbal communication between the draftspeople which is subject to a breakdown. Second, the xe2x80x98ubiquitousxe2x80x99 nature of electronic information access tends to exacerbate the weaknesses of the manual communications process. xe2x80x9cElectronic participantsxe2x80x9d on a project can now be physically dispersed as a byproduct of the xe2x80x98virtual officexe2x80x99 model made possible by communications advances such as the Internet. Third, software advances are making electronic engineering simulations more powerful and reliable such that the computer model can be regarded as the master design information, with design drawings representing reports generated from that model.
Accordingly, the software model of storing engineering projects as a disconnected series of xe2x80x9cdrawing filesxe2x80x9d must be updated to advance the state-of-the-art. The present invention fulfills such a need.
One embodiment of the present invention provides a method of managing filed-based data which is manipulated by at least one user via a file-based computerized editor. The file-based data includes a plurality of file elements. The file-based data are represented as a plurality of individual components wherein each individual component has a unique identity and identifier. The individual components are stored in a repository. Each component has a unique identifier, a set of fields, each field having a data type and a data value, a program which interprets and modifies the fields, and, optionally, a list of other dependent components. A schema is defined for the plurality of components. The schema is a set of classes that capture all of the information in the filed-based data. The schema is retrieved whenever the components are retrieved from the repository.
The present invention also provides a data management structure for engineering design data comprising a plurality of components. Each component has a unique identifier, a set of fields, each field having a data type and a data value, and a program which interprets and modifies the fields, and, optionally, a list of other dependent components. At least some of the components represent respective elements in a filed-based computerized editing system.
The present invention further provides a repository for storing a plurality of engineering models. Each engineering model comprises engineering design data and includes a specific plurality of components. Each component has a unique identifier, a set of fields, each field having a data type and a data value, a program which interprets and modifies the fields, and, optionally, a list of other dependent components. At least some of the components represent respective elements in a file-based computerized editing system.
The present invention further provides a scheme for translating file-based data, which is manipulated by at least one user via a file-based computerized editor, into a plurality of individual components. The file-based data includes a plurality of file elements. In the scheme, file-based data is represented as a plurality of individual components having the attributes discussed above. A memory stores the individual components in a repository. The present invention also provides a reverse scheme for translating a plurality of components into file-based data.
The present invention further provides a scheme for synchronizing changes to a plurality of components stored in a central repository. The repository is accessible to plural users, each of whom are permitted to revise the components in the repository. The components represent file-based data of an engineering design file. In the scheme, a user creates a temporary design file at a local computer workstation by downloading the current data in the repository and converting the current data to create an original current version of the design file at the workstation. The user then creates an edited version of the temporary design file from the original current version. Next, the user requests that the set of components which represent the edited version of the temporary design file be updated to reflect any component changes made in the repository since the creation of the original current version of the temporary design file by other users during the user""s editing time period. As part of the updating process, resolvable and unresolvable component conflicts are locally detected on a per component basis between the components which represent the edited temporary version of the design file and the latest current version of the components. The components represented by the locally updated and edited temporary version of the design file are allowed to replace the latest current version of the components in the repository only if no unresolved component conflicts exist between the two versions.
The present invention farther provides a client-server system for multi-user management of engineering data. The system comprises a server and a plurality of client computers. The server includes a repository for storing a current version of a plurality of components. The components represent elements of at least one engineering project. Each component has the attributes discussed above. Each client computer is bidirectionally connected to the server for receiving the current version of a plurality of components representing elements of an engineering project, and for sending locally edited versions of the components back to the server. Each client computer includes a component memory for storing a local version of the components. The components in the component memory of each client computer may be locally edited in successive editing sessions. To facilitate this process, the component memory stores the latest version of the plurality of individual components, and information to fully document changes made to each version of each individual component during the local editing. Each client computer interacts with the server to perform component synchronization and commit processes as discussed above.